﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="IObservableCollection.cs" company="XamlNinja">
//   2011 Richard Griffin and Ollie Riches
// </copyright>
// <summary>
//    Generic interface for observable collection.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace WP7Contrib.Collections
{
    using System.Collections;
    using System.Collections.Generic;
    using System.Collections.Specialized;
    using System.ComponentModel;

    /// <summary>
    /// Marker interface for the observable collection.
    /// </summary>
    public interface IObservableCollection
    {
    }

    /// <summary>
    /// Generic interface for observable collection
    /// </summary>
    /// <typeparam name="T">The type being used for binding.
    /// </typeparam>
    public interface IObservableCollection<T> : IList<T>, IList, IObservableCollection, INotifyCollectionChanged, INotifyPropertyChanged
    {
        /// <summary>
        /// Adds a range of items to the observable collection.
        /// </summary>
        /// <param name="items">
        /// The items to be added to the observable collection.
        /// </param>
        void AddRange(IEnumerable<T> items);
    }
}